#include "tipo_dato.h"

TipoDato::TipoDato(bool es_obligatorio){
	this->obligatorio = es_obligatorio;	
}

bool TipoDato::es_obligatorio() const{
	return obligatorio;
}

bool TipoDato::mismo_tipo(const TipoDato& dato) const{
	return (this->get_codigo_tipo() == dato.get_codigo_tipo());
}

bool TipoDato::operator<= (const TipoDato& dato) throw (ExcepErrorTipos){
	return ( ((*this) < dato) || ((*this) == dato) );
}

unsigned int TipoDato::get_tamanio_serializado(){
	unsigned int tam_s_dato;
	char* s_dato; //Dato serializado
	//Serializo el dato y devuelvo el tamanio obtenido
	this->serializar(&s_dato, tam_s_dato);
	delete[] (s_dato);
	return tam_s_dato;
}
